package com.ruoyi.manage.organization.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.experimental.Tolerate;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.time.LocalDate;
import java.util.List;


/**
 * 订单还款记录对象 oc_order_repayment
 *
 * @author ruoyi
 * @date 2025-08-20
 */
@Data
@ApiModel(value="订单还款记录对象", description="订单还款记录")
@TableName("oc_order_repayment")
@Builder
public class OcOrderRepayment extends BaseEntity implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     *  ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "ID")
    private  Long  id;

    /**
     *  创建时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private  Date  createTime;

    /**
     *  编辑时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "编辑时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "编辑时间")
    private  Date  updateTime;

    /**
     *  版本
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "版本")
    @ApiModelProperty(value = "版本")
    private  String  version;

    /**
     *  删除标识
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "删除标识")
    @ApiModelProperty(value = "删除标识")
    private  Long  deleted;

    /**
     *  匹配编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "匹配编号")
    @ApiModelProperty(value = "匹配编号")
    private  String  machNo;

    /**
     *  订单编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "订单编号")
    @ApiModelProperty(value = "订单编号")
    private  String  orderNo;

    /**
     *  还款金额
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "还款金额")
    @ApiModelProperty(value = "还款金额")
    private  BigDecimal  repaymentAmount;

    /**
     *  逾期标记（1295997657357058055）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "1=295997657357058055")
    @Excel(name = "逾期标记", readConverterExp = "1=295997657357058055")
    @ApiModelProperty(value = "逾期标记",notes="1=295997657357058055")
    private  String  overdueFlag;

    /**
     *  逾期金额
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "逾期金额")
    @ApiModelProperty(value = "逾期金额")
    private  BigDecimal  overdueAmount;

    /**
     *  坏账金额
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "坏账金额")
    @ApiModelProperty(value = "坏账金额")
    private  BigDecimal  badDebtsAmount;

    /**
     *  还款时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "还款时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "还款时间")
    private  Date  repaymentTime;

    /**
     *  反馈时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "反馈时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "反馈时间")
    private  Date  feedbackTime;

    /**
     *  是否结清（1295997657357058058）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "1=295997657357058058")
    @Excel(name = "是否结清", readConverterExp = "1=295997657357058058")
    @ApiModelProperty(value = "是否结清",notes="1=295997657357058058")
    private  String  clearFlag;

    /**
     *  备注信息
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "备注信息")
    @ApiModelProperty(value = "备注信息")
    private  String  remark;

    /**
     *  还款类型（0正常还款 1逾期还款 2结清还款 1296279783268692030）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "0=正常还款,1=逾期还款,2=结清还款,1=296279783268692030")
    @Excel(name = "还款类型", readConverterExp = "0=正常还款,1=逾期还款,2=结清还款,1=296279783268692030")
    @ApiModelProperty(value = "还款类型",notes="0=正常还款,1=逾期还款,2=结清还款,1=296279783268692030")
    private  String  repaymentType;

    /**
     *  保费缴纳金额
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "保费缴纳金额")
    @ApiModelProperty(value = "保费缴纳金额")
    private  BigDecimal  premiumAmount;

    /**
     *  保费缴纳日期
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保费缴纳日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "保费缴纳日期")
    private  Date  premiumDate;

    /**
     *  期数/总期数
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期数/总期数")
    @ApiModelProperty(value = "期数/总期数")
    private  Long  periods;
    @TableField(exist = false)
    private List<String> ids;
    @Tolerate
    public OcOrderRepayment(){}
}
